<?php
define('MINI_RUN', true);
require '../mini.php';
/*
 * 本Ajax只用于影响数据的操作
 * OK 表示成功
 * 0 表示无法执行操作
 * null	表示已经执行操作，但执行失败
 */
if (empty($_POST['op'])){
	echo 0;
	return ;
}
Mini::checkLogin();
unset($_REQUEST);
switch ($_POST['op']){	
	case 'addclass':	//添加栏目
		echo ($_POST['classname']&&$_POST['classdir']&&isset($_POST['parentid'])&&$_POST['classtempid']&&$_POST['pagetempid']&&$_POST['classkey']&&$_POST['classdesc']&&isset($_POST['classcss'])&&isset($_POST['classjs'])&&isset($_POST['smalltext'])&&$_POST['classtext'])?addClass($_POST):0;
		break;
	case 'setclass':	//更改栏目
		echo ($_POST['classid']&&$_POST['classname']&&$_POST['classdir']&&isset($_POST['parentid'])&&$_POST['classtempid']&&$_POST['pagetempid']&&$_POST['classkey']&&$_POST['classdesc']&&isset($_POST['classcss'])&&isset($_POST['classjs'])&&isset($_POST['smalltext'])&&$_POST['classtext'])?setClass($_POST):0;
		break;
	case 'addpage':		//添加文章
		echo ($_POST['classid']&&$_POST['title']&&$_POST['pagekey']&&$_POST['pagedesc']&&$_POST['source']&&$_POST['author']&&isset($_POST['smalltext'])&&$_POST['pagetext']&&$_POST['filename'])?addPage($_POST):0;
		break;
	case 'setpage':		//更改文章
		echo ($_POST['pageid']&&$_POST['classid']&&$_POST['title']&&$_POST['pagekey']&&$_POST['pagedesc']&&$_POST['source']&&$_POST['author']&&$_POST['smalltext']&&$_POST['pagetext']&&$_POST['filename'])?addPage($_POST):0;
		break;
	case 'addclasstemp':	//添加栏目模板
		echo ($_POST['tempname']&&$_POST['temptext']) ? addTemp('Mini_ClassTemp', $_POST):0;
		break;
	case 'setclasstemp':	//更改栏目模板
		echo ($_POST['tempname']&&$_POST['temptext']&&$_POST['tempid'])?setTemp('Mini_ClassTemp', $_POST):0;
		break;
	case 'addpagetemp':		//添加文章模板
		echo ($_POST['tempname']&&$_POST['temptext'])?addTemp('Mini_PageTemp', $_POST):0;
		break;
	case 'setpagetemp':		//更改文章模板
		echo ($_POST['tempname']&&$_POST['temptext']&&$_POST['tempid'])?setTemp('Mini_PageTemp', $_POST):0;
		break;
	case 'addtagtemp':		//添加标签模板
		echo ($_POST['tempname']&&$_POST['temptext'])?addTemp('Mini_TagTemp', $_POST):0;
		break;
	case 'settagtemp':		//更改标签模板
		echo ($_POST['tempname']&&$_POST['temptext']&&$_POST['tempid'])?setTemp('Mini_TagTemp', $_POST):0;
		break;
	case 'adddata':			//添加资料数据
		echo ($_POST['datakey']&&$_POST['datavalue']&&$_POST['datadesc'])?addData($_POST):0;
		break;
	case 'setdata':			//更改资料数据
		echo ($_POST['classid']&&$_POST['datakey']&&$_POST['datavalue']&&$_POST['datadesc'])?setData($_POST):0;
		break;
	case 'delpage':		//删除文章
		echo $_POST['pageid']?delPage($_POST['pageid']):0;
		break;
	case 'deldata':		//删除资料数据
		echo ($_POST['datakey'])?deleteById('Mini_Data', 'DataKey', $_POST['datakey']):0;
		break;
	case 'delclasstemp':	//删除栏目首页模板
		echo ($_POST['tempid'])?deleteById('Mini_ClassTemp', 'TempId', $_POST['tempid']):0;
		break;
	case 'delpagetemp':		//删除文章内容模板
		echo ($_POST['tempid'])?deleteById('Mini_PageTemp', 'TempId', $_POST['tempid']):0;
		break;
	case 'deltagtemp':		//删除标签模板
		echo ($_POST['tempid'])?deleteById('Mini_TagTemp', 'TempId', $_POST['tempid']):0;
		break;
	case 'execsql':
		echo ($_POST['sql']) ? executeSQL($_POST['sql']) : 0;
		break;
	case 'addvar':
		echo $_POST['varname']&&$_POST['varinfo']&&$_POST['vartext'] ? addVar($_POST) : 0;
		break;
	case 'sethome':
		echo $_POST['hometext'] ? setHome($_POST) : 0;
		break;
	default:
		echo 0;
}
return;
/** 
 * 栏目数据表 Mini_Class
 * INSERT INTO Mini_Class VALUES (ClassId,ClassName,ClassDir,ParentId,ClassTempId,PageTempId,ClassKey,ClassDesc,ClassCss,ClassJs,SmallText,ClassText,IsUpdate)
 * 
 * 文章数据表 Mini_Page
 * INSERT INTO Mini_Page VALUES (PageId,ClassId,Title,PageKey,PageDesc,Source,Author,UserId,PubTime,Click,SmallText,PageText,Good,Bad,Score,ScoreNum,FileName,ModifyTime,IsUpdate);
 * 
 * 模板数据表 Mini_ClassTemp Mini_PageTemp Mini_TagTemp
 * INSERT INTO Mini_XXTemp VALUES (TempId,TempName,TempText)
 * 
 * 资料数据表 Mini_Data 
 * INSERT INTO Mini_Data VALUES (ClassId,DataKey,DataValue,DataDesc)
 * 
 * 标签数据表 Mini_Tag
 * INSERT INTO Mini_Tag VALUES (TagId,TagName,TagSQL,TagSize,TagOrder,TagTempId);
 */

/**
 *********************************************
 * 栏目操作
 *********************************************/
function addClass($classArray){
	unset($_POST); 
	$pdo = new MySQLPDO();
	$insert = 'INSERT INTO Mini_Class VALUES (NULL,?,?,?,?,?,?,?,?,?,?,?,default)';
	$paramArray = array($classArray['classname'],$classArray['classdir'],$classArray['parentid'],$classArray['classtempid'],$classArray['pagetempid'],
		$classArray['classkey'],$classArray['classdesc'],$classArray['classcss'],$classArray['classjs'],$classArray['smalltext'],$classArray['classtext']);
	$rowId = $pdo->insertSQL($insert,$paramArray);
	return $rowId ? 'OK' : 'null';
}

function setClass($classArray){
	unset($_POST);
	$pdo = new MySQLPDO();
	$sql = 'UPDATE Mini_Class SET ClassName=?,ClassDir=?,ParentId=?,ClassTempId=?,PageTempId=?,ClassKey=?,ClassDesc=?,ClassCss=?,ClassJs=?,SmallText=?,ClassText=?,IsUpdate=1 WHERE ClassId=?';
	$paramArray = array($classArray['classname'],$classArray['classdir'],$classArray['parentid'],$classArray['classtempid'],$classArray['pagetempid'],$classArray['classkey'],
		$classArray['classdesc'],$classArray['classcss'],$classArray['classjs'], $classArray['smalltext'],$classArray['classtext'],$classArray['classid']);
	$rowId = $pdo->changeSQL($sql,$paramArray);
	return $rowId ? 'OK' : 'null';
}
/**
 *********************************************
 * 文章操作 
 *********************************************/
function addPage($page){
	unset($_POST);	
	$pdo = new MySQLPDO();	
	$insert = 'INSERT INTO Mini_Page VALUES (NULL,?,?,?,?,?,?,?,now(),0,?,?,0,0,0,0,?,default,default)';
	$paramArray = array($page['classid'],$page['title'],$page['pagekey'],$page['pagedesc'],$page['source'],$page['author'],$_SESSION['UserId'],$page['smalltext'],$page['pagetext'],$page['filename']);
	$rowId = $pdo->insertSQL($insert,$paramArray);
	return $rowId ? 'OK' : 'null';
}
function setPage($page){
	unset($_POST);
	$pdo = new MySQLPDO();
	$select = 'SELECT ClassId,FileName FROM Mini_Page WHERE PageId=? limit 1';	
	$pArray = $pdo->selectSQL($select,array($page['pageid']));
	if ($pArray) $p = $pArray[0];
	else return 'null';		
	$update = 'UPDATE Mini_Page SET Title=?,ClassId=?,PageKey=?,PageDesc=?,Source=?,Author=?,SmallText=?,PageText=?,FileName=?,ModifyTime=now(),IsUpdate=1 WHERE PageId=?';
	$paramArray = array($page['title'],$page['classid'],$page['pagekey'],$page['pagedesc'],$page['source'],$page['author'],$page['smalltext'],$page['pagetext'],$page['filename'],$page['pageid']);
	$rowId = $pdo->changeSQL($update, $paramArray);
	if ($rowId){
		if (strcasecmp($page['classid'], $p['classid'])||strcasecmp($page['filename'], $p['filename']))
		{
			$oldPath = Mini::getClassPath($p['classid']);
			require MINI_PATH.'admin/file.php';
			deleteFile(MINI_PATH.$oldPath.$p['filename'].'.html');
		}
		return 'OK';
	}
	return 'null';			
}
function delPage($pageId){
	unset($_POST);
	$pdo = new MySQLPDO();
	$sql = 'SELECT ClassId,FileName FROM Mini_Page WHERE PageId=? limit 1';
	$pageArray = $pdo->selectSQL($sql, array($pageId));
	if ($page = $pageArray[0]){
		$pageURL = Mini::getClassPath($page['classid']).$page['filename'].'.html';
		require MINI_PATH.'admin/file.php';
		deleteFile(MINI_PATH.$pageURL);		
	}
	return 'OK';
}
/**
 *********************************************
 * 模板操作 
 *********************************************/
function addTemp($tableName,$tempArray){
	unset($_POST);
	$pdo = new MySQLPDO();
	$sql = 'INSERT INTO '.$tableName.' VALUES (NULL,?,?)';
	$rowId = $pdo->insertSQL($sql, array($tempArray['tempname'], $tempArray['temptext']));
	return $rowId ? 'OK' : 'null';
}
function setTemp($tableName,$tempArray){
	unset($_POST);
	$pdo = new MySQLPDO();
	$sql = 'UPDATE '.$tableName.' SET TempName=?,TempText=? WHERE TempId=?';
	$rowCount = $pdo->changeSQL($sql, array($tempArray['tempname'],$tempArray['temptext'],$tempArray['tempid']));
	return $rowCount ? 'OK' : 'null';
}

/**
 *********************************************
 * 资料库操作 
 *********************************************/
function addData($data){
	unset($_POST);
	$pdo = new MySQLPDO();
	$insert = 'INSERT INTO Mini_Data VALUES (?,?,?,?)';
	$paramArray = array($data['classid'],$data['datakey'],$data['datavalue'],$data['datadesc']);
	$rowCount = $pdo->changeSQL($insert,$paramArray);
	return $rowCount ? 'OK' : 'null';
}

function setData($dataArray){
	unset($_POST);
	$pdo = new MySQLPDO();
	$sql = 'UPDATE Mini_Data SET ClassId=?,DataValue=?,DataDesc=? WHERE DataKey=?';
	$paramArray = array($dataArray['classid'], $dataArray['datavalue'], $dataArray['datadesc'], $dataArray['datakey']);
	$rowCount = $pdo->changeSQL($sql,$paramArray);
	return $rowCount ? 'OK' : 'null';
}

/**
 *********************************************
 * 全局变量操作
 *********************************************/
function addVar($post){
	unset($_POST);
	$pdo = new MysqlPDO();
	$insertSQL = 'INSERT INTO Mini_VarTemp VALUES(?,?,?)';	
	$rowId = $pdo->insertSQL($insertSQL,array($post['varname'],$post['varinfo'],$post['vartext']));	
	return $rowId ? 'OK' : 'null'; 		
}

/**
 *********************************************
 * 通用操作、其他操作 
 *********************************************/
function deleteById($tableName,$columnName,$columnId){
	unset($_POST);
	$pdo = new MySQLPDO();
	$rowId = $pdo->changeSQL('DELETE FROM '.$tableName.' WHERE '.$columnName.'=?', array($columnId));
	return $rowId ? 'OK' : 'null';		
}

/**
 * 执行SQL语句
 * @param $sql
 */
function executeSQL($sql){
	unset($_POST);
	$pdo = new MySQLPDO();
	$rowCount = $pdo->changeSQL($sql);
	return $rowCount ? 'OK' : 'null';	
}

/**
 * 修改网站首页模板内容
 * @param array $post
 */
function setHome($post){
	unset($_POST);
	$pdo = new MysqlPDO();
	$rowCount = $pdo->changeSQL('UPDATE Mini_VarTemp SET VarText=? WHERE VarName=?', array($post['hometext'], 'Mini_Home'));
	return $rowCount ? 'OK' : 'null'; 
}

?>